import express from 'express'
import { authenticate } from '../controllers/userController.js'
import {
  addComment,
  getComments,
  likePost,
  checkLikeStatus,
  sharePage,
  getSharesCount,
  getInteractionStats,
  deleteComment,
} from '../controllers/interactionController.js'

const router = express.Router()

// 评论相关路由
router.post('/comment', authenticate, addComment)
router.get('/comments/:pageId', getComments)
router.delete('/comment/:id', authenticate, deleteComment)

// 点赞相关路由
router.post('/like', authenticate, likePost)
// 使用可选认证，允许未登录用户查看点赞状态，但登录用户可以看到自己是否点赞
router.get(
  '/like/:pageId',
  (req, res, next) => {
    // 尝试认证，但不强制要求
    const token = req.headers.authorization?.split(' ')[1]
    if (token) {
      authenticate(req, res, next)
    } else {
      next()
    }
  },
  checkLikeStatus,
)

// 分享相关路由
router.post('/share', authenticate, sharePage)
router.get('/shares/:pageId', getSharesCount)

// 获取统计数据（用于后台）
// 使用可选认证，允许管理员和普通用户访问
router.get(
  '/stats',
  (req, res, next) => {
    // 尝试认证，但不强制要求
    const token = req.headers.authorization?.split(' ')[1]
    if (token) {
      try {
        // 这里不使用中间件，直接进行简单验证
        // 只要有token就允许访问，具体权限在控制器中处理
        next()
      } catch (error) {
        next()
      }
    } else {
      next()
    }
  },
  getInteractionStats,
)

export default router
